using System;
using System.Collections;

using Curriculum.Business.Clases;
using Curriculum.Business.LectorDatos;

namespace Curriculum.Business.ClasesPersistentes
{
	/// <summary>
	/// Summary description for Presentacion.
	/// </summary>
	public class Presentacion
	{
		private string idPresentacion;
		private DateTime fecha;
		private string lugar;
		private string proposito;
		private string comentario;
		private ArrayList _antecedentes;
		private ArrayList _antecedentesPersistentes;

		public Presentacion()
		{
			_antecedentes = new ArrayList();
			_antecedentesPersistentes = new ArrayList();			
		}

		#region - Properties -

		public string IdPresentacion
		{
			get { return idPresentacion; }
			set { idPresentacion = value; }
		}

		public DateTime Fecha
		{
			get { return fecha; }
			set { fecha = value; }
		}

		public string Lugar
		{
			get { return lugar; }
			set { lugar = value; }
		}

		public string Proposito
		{
			get { return proposito; }
			set { proposito = value; }
		}

		public ArrayList Antecedentes
		{
			get { return _antecedentes; }
			set { _antecedentes = value; }
		}

		public ArrayList AntecedentesPersistentes
		{
			get { return _antecedentesPersistentes; }
			set { _antecedentesPersistentes = value; }
		}

		public string Comentario
		{
			get { return comentario; }
			set { comentario = value; }
		}

		#endregion - Properties -

		public void ConstruirPresentacion(LectorDatos.Presentacion presentacionXML)
		{
			this.idPresentacion = presentacionXML.id;
			this.comentario = presentacionXML.comentario;
			this.proposito = presentacionXML.proposito;
			this.fecha = DateTime.Parse(presentacionXML.fecha);
			this.lugar = presentacionXML.lugar;
			
			if (presentacionXML.antecedentes != null)
				this._antecedentes.AddRange(presentacionXML.antecedentes);
			if (presentacionXML.antecedentesPersistentes != null)
				this._antecedentesPersistentes.AddRange(presentacionXML.antecedentesPersistentes);
		}

		public LectorDatos.Presentacion ConvertirAEstructura()
		{
			LectorDatos.Presentacion presentacionXML =	new LectorDatos.Presentacion();
			
			presentacionXML.comentario = this.Comentario;
			presentacionXML.fecha = this.Fecha.ToString();
			presentacionXML.id = this.IdPresentacion;
			presentacionXML.lugar = this.Lugar;
			presentacionXML.proposito = this.proposito;

			if (this.Antecedentes != null)
			{
				presentacionXML.antecedentes = new IdAntecedente[this.Antecedentes.Count];
				this.Antecedentes.CopyTo(presentacionXML.antecedentes);
			}
			if (this.AntecedentesPersistentes != null)
			{
				presentacionXML.antecedentesPersistentes = new IdAntecedentePersistente[this.AntecedentesPersistentes.Count];
				this.AntecedentesPersistentes.CopyTo(presentacionXML.antecedentesPersistentes);
			}

			return presentacionXML;
		}
	}
}
